//配置路由
import Vue from "vue";
import VueRouter from "vue-router";
//主题
import Login from "@/views/Login";
//主页面
import Home from "@/views/Home";
//注册页面
import Register from "@/views/Register";
//主页面 下的侧边栏页面路径
// import OneSidebar from "@/views/OneSidebar"
// import TwoSidebar from "@/views/TwoSidebar"


import Layout from "@/layout/Layout"

import equest from "@/utils/equest"
import routers from "@/router"



//安装插件
Vue.use (VueRouter);//挂载插件

//创建路由对象并配置路由规则
// export default new VueRouter({
//     mode:'history',//去除路径中#符号
//     routes:[
//
//         {
//             //Home 主页面
//             path: '/home',
//             name: '导航一',
//             component: Home,
//             children:[//定义子路由嵌套
//                 // {
//                 //     //侧边栏1 页面
//                 //     path: '/OneSidebar',
//                 //     name: '侧边栏1',
//                 //     component: OneSidebar
//                 // },
//                 // {
//                 //     //侧边栏2 页面
//                 //     path: '/TwoSidebar',
//                 //     name: '侧边栏2',
//                 //     component: TwoSidebar
//                 // },
//                 // {
//                 //     path: '/Test',
//                 //     name: '测试',
//                 //     component: () => import('@/views/Test')
//                 // }
//             ]
//         },
//         {
//             //第一个页面
//             path: '/Login',
//             name: 'Login',
//             component: Login,
//
//         },
//         {
//             //注册页面
//             path: '/register',
//             name: 'Register',
//             component: Register,
//             hidden:true
//         },
//     ]
// })

const routes = [
    {
            //Home 主页面
            path: '/home',
            name: '导航1',
            component: Home,
            meta: { requiresAuth: true }, // 添加表示需要验证
            children:[//定义子路由嵌套
                {
                    //侧边栏1 页面
                    path: '/DefaultHome',
                    name: '登录默认打开的页面',
                    component: () => import("@/views/DefaultHome")

                },
                {
                    path: '',
                    redirect: '/DefaultHome',
                    hidden: true
                }
                // {
                //     //侧边栏2 页面
                //     path: '/TwoSidebar',
                //     name: '侧边栏2',
                //     component: TwoSidebar
                // },
                // {
                //     path: '/Test',
                //     name: '测试',
                //     component: () => import('@/views/Test')
                // }
            ]
        },
        {
            //第一个页面
            path: '/',
            name: 'Login',
            component: Login,
            hidden:true
        },
        {
            //注册页面
            path: '/register',
            name: 'Register',
            component: Register,
            hidden:true
        }

]

const router = new VueRouter({
    mode: 'history',
    base: process.env.BASE_URL,
    // routes: [...routes, ...routeFromServer]
    routes
})

router.beforeEach((to, from, next) => {
    if (to.path === '/') {    //若要跳转的页面是登录界面
        next();     //直接跳转
    }
    else if (to.path === '/DefaultHome'){   //若要跳转的页面是个人界面
        let token = localStorage.getItem('token');    //获取本地存储的token值
        if (token===null||token===''){    //若token为空则验证不成功，跳转到登录页面
            next('/');
        }
        else{           //不为空则验证成功
            next();
        }
    }
    else{
        next();
    }
});



export default router
//标签切换页面防止报错
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
    return originalPush.call(this, location).catch(err => err)
}


//重新加载方法，防止白页面
activRouter()
export function activRouter(){
    const userStr = sessionStorage.getItem("user")
    if (userStr) {
        const user = JSON.parse(userStr)
        let root ={
            path: '/home',
            name: '导航一',
            component: Home,
            children:[]
        }
        user.data.permissions.forEach(p =>{
            let obj = {
                path: p.path,
                name: p.name,
                component: () => import("@/views" + p.path)
            };
            root.children.push(obj)
        })
        if (router){
            router.addRoute(root)
            console.log(root)
        }
    }
    console.log(router)
}







